Singleton Design Pattern In Java - Part I